1. Field of the Invention
The present invention is generally directed to a method and system for using data pattern tracking to debug datapath failures. More specifically, the present invention is directed to a method and system of tracking and profiling tagless data objects by their respective values while accounting for transformations to the values as the data objects travel through datapaths of a system to thereby locate and debug problems with the system, components, and datapaths in an efficient and automated manner.
2. Description of the Related Art
In integrated circuit (IC) design, it is of paramount importance to be able to quickly, easily, and inexpensively ascertain whether there are flaws with a design, locate those flaws within the design, debug, and resolve such flaws. Generally, each circuit or design may be represented as a Device Under Test (DUT) as a database or computer readable file representing the layout and/or schematic of the circuit or design. This computer readable file representing the device under test (DUT) is run through many simulations to verify that it performs as intended. Conventionally, this DUT would undergo a comprehensive battery of tests using pseudorandom or random constrained inputs and checking to determine whether the outputs were in accord with the inputs.
If it was determined that a given output was in an unexpected state, then the engineer or designers would have to evaluate the system comprehensively and in a painstaking manner—inspecting, tracing, and generally attempting to determine where the problem occurred and what, exactly, was the problem. Such a debugging effort could potentially implicate multiple disciplines at multiple sites, bringing together multiple engineering/design/debug teams as datapaths often cross many different and disparate components. Multiple teams would need to be assembled having expertise in each of the elements along the potential datapath where the problem may have occurred. Forcing these engineers of different disciplines to collaborate to resolve each issue requires a lot of time, effort, expense, and coordination.
Another method conventionally used in concert with such a debug effort has been to introduce a tagging means to tag or incorporate unique identifiers for each packet. Such a tag may be implemented in metadata. However, the use of metadata and tags to label items during evaluation would require extensive modifications to code, additional overhead, and may introduce additional unwanted problems. It may also require modification of the DUT itself to accommodate the tagging. The modified DUT would then require subsequent removal of the modifications performed to accommodate the tagging, a reversion to unmodified code, and a separate re-verification on the unmodified DUT.
There is therefore an urgent need for a method and system for using data pattern tracking to debug datapath failures without tagging or otherwise modifying data objects.
There is therefore a need for a method and system for automatically tracking the data pattern of data objects as they traverse through datapaths of the system to thereby quickly locate problems within a circuit, design, device, or network.